import request from '@/utils/request'

// Redis特性接口

/**
 * 获取热门用户排行
 */
export function getHotUsers() {
  return request({
    url: 'api/sysUser/hotUsers',
    method: 'get'
  })
}

/**
 * 获取用户访问次数
 * @param {number} id - 用户ID
 */
export function getUserViewCount(id) {
  return request({
    url: `api/sysUser/viewCount/${id}`,
    method: 'get'
  })
}

/**
 * 获取行为统计数据
 */
export function getBehaviorStats() {
  return request({
    url: 'api/redis/behavior/stats',
    method: 'get'
  })
}

/**
 * 测试限流功能
 * @param {string} key - 限流键（可选）
 */
export function testRateLimit(key) {
  return request({
    url: 'api/redis/ratelimit/test',
    method: 'get',
    params: { key }
  })
}

/**
 * 测试分布式锁
 */
export function testDistributedLock() {
  return request({
    url: 'api/redis/lock/test',
    method: 'get'
  })
}

/**
 * 发布消息
 * @param {string} channel - 频道
 * @param {string} message - 消息内容
 */
export function publishMessage(channel, message) {
  return request({
    url: 'api/redis/publish',
    method: 'post',
    params: { channel, message }
  })
}

/**
 * 记录用户查看行为
 * @param {number} userId - 被查看的用户ID
 * @param {number} viewerId - 查看者ID（可选）
 */
export function recordUserView(userId, viewerId) {
  return request({
    url: `api/redis/behavior/view/${userId}`,
    method: 'get',
    params: { viewerId }
  })
}

/**
 * 获取排行榜数据
 */
export function getRankingData() {
  return request({
    url: 'api/redis/ranking/test',
    method: 'get'
  })
}

/**
 * 获取用户行为热力图数据
 */
export function getBehaviorHeatmap() {
  return request({
    url: 'api/redis/behavior/heatmap',
    method: 'get'
  })
}

/**
 * 获取接口限流统计数据
 */
export function getRateLimitStats() {
  return request({
    url: 'api/redis/ratelimit/stats',
    method: 'get'
  })
}
